1. Field of the Present Invention
The present invention generally relates to field of computer software applications and more particularly to a system and method for building software test cases with an interactive graphical user interface.
2. History of Related Art
In the field of computers and, more particularly, computer networks, it is often desirable to characterize or debug the network by executing a specific sequence of events on the network to determine if the particular sequence produces any unanticipated actions or results. In a TCP/IP connected network, for example, multiple nodes of a network are interconnected and capable of communicating with one another. In such a network, a communication link or pipeline between any two nodes can be established by opening a xe2x80x9csocket,xe2x80x9d which consists of an IP address and a port number for each node. When the socket is open, the nodes at either end of the pipeline communicate packets to transmit data (information) back and forth. When the data transmission is completed, the socket is closed to terminate the pipeline. The TCP/IP protocol is just one example of a mechanism by which nodes on a network can communicate with one another.
Because a network typically consists of large number of computers or other data processing devices or systems running on a variety of platforms, the number of events or sequences of events that the network may experience is virtually limitless and essentially impossible to predict or otherwise anticipate. Thus, the task of debugging or characterizing a network for reliable interaction between the nodes in a time effective manner is exceedingly difficult. Typically, the task of characterizing a network consists of a user writing a series of test sequences, each of which includes one or more test cases that are assembled in a manner determined by the user. The user must write a new test sequence for each specific sequence of events that the user wants to execute. Thus, the typical method of generating test sequences is manually intensive and makes it essentially impossible to produce enough test sequences to achieve any significant degree of coverage for a network of any appreciable complexity. It would therefore be desirable to simplify and automate the process by which a user generates test sequences to exercise a computer network or other similar system.
The problem identified above is in large part addressed by a method, system, and computer program product for generating test sequences as contemplated herein. Initially, a graphical user interface is invoked to display a list of preexisting test cases. A first test case is selected from the list of test cases to create a first instance of the first test case, which is added to the test sequence. The test sequence is displayed in a test sequence portion of the graphical user interface. A subsequent test case is then selected from the list of test cases to create an instance of the subsequent test case, which is also added to the test sequence. The GUI may permit the modification of a parameter of the first test case by invoking a test case editor from the GUI. In one embodiment, the subsequent test case and the first case are the same such that first and second instances of the first test cases are included in the test sequence. In this embodiment, the first and second instances of the first test case may be individually edited such that the first and second instances of the first test case have different parameters. In another example, the subsequent test case is a second test case and the instance of the subsequent test case is a first instance of the second test case. The GUI may include a serial test command that results in a test sequence in which the first test case and the subsequent test case are executed serially. The GUI may further include a parallel test command that results in a test sequence in which the first test case and the subsequent test case are executed in parallel. These commands may be nested to an arbitrary depth. The GUI may further include an execution selector for executing the generated test sequence on a system such as a computer network.